package com.pdf.annotates;

import com.converters.AutoConverter;
import com.converters.Converter;
import com.enums.Alignment;
import com.enums.LineEnum;
import com.enums.TextLevEnum;
import com.fonts.DefaultFont;
import com.fonts.Font;
import com.write.DefaultWriteData;
import com.write.WriteDataHandle;

import java.lang.annotation.*;

@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface PdfProperty {

    /**
     * 值
     * @return
     */
    String value();

    /**
     * 名称
     * @return
     */
    String name() default "";

    /**
     * 组
     * @return
     */
    String group() default "";

    /**
     * 下划线
     * @return
     */
    LineEnum line() default LineEnum.NONE;

    /**
     * 内容级别
     * @return
     */
    TextLevEnum lev() default TextLevEnum.THREE_LEV;

    /**
     * 行数
     * @return
     */
    String row() default "";

    /**
     * 字体
     * @return
     */
    Class<? extends Font> font() default DefaultFont.class;

    /**
     * 居中方式
     * @return
     */
    Alignment alignment() default Alignment.CENTER;

    /**
     * 转换器
     * @return
     */
    Class<? extends Converter> converter() default AutoConverter.class;

    /**
     * 写入数据处理器
     * @return
     */
    Class<? extends WriteDataHandle> writeHandle() default DefaultWriteData.class;

    /**
     * 导出表格头
     * @return
     */
    String[] head() default {};
}
